💰 API de Status Financeiro - Documentação Completa
📋 Visão Geral
A API de Status Financeiro é responsável por gerenciar o controle financeiro mensal dos usuários no sistema CordenaAi, incluindo consulta, criação e atualização do status de pagamento por usuário e mês. O sistema permite rastrear se um usuário está em dia ou em atraso com suas obrigações financeiras em um período específico.
🎯 Endpoints Disponíveis
1. GET /api/StatusFinanceiro
Listar Todos os Status Financeiros
- Descrição: Retorna todos os registros de status financeiro da tabela
- Método: GET
- Autenticação: Requerida (JWT Bearer Token)
- Parâmetros: Nenhum
- Resposta: Lista de todos os objetos StatusFinanceiro
- Uso: Relatórios gerais, análises completas, exportação de dados
2. GET /api/StatusFinanceiro/consultar
Consultar Status Financeiro
- Descrição: Consulta o status financeiro de um usuário em um mês específico
- Método: GET
- Autenticação: Requerida (JWT Bearer Token)
- Parâmetros:
usuarioId (query): ID do usuário (formato GUID)
mes (query): Mês de referência no formato YYYY-MM
- Resposta: Objeto StatusFinanceiro ou status padrão (true) se não existir
- Uso: Verificação de situação financeira, relatórios de inadimplência, dashboards financeiros
3. POST /api/StatusFinanceiro
Criar Status Financeiro
- Descrição: Cria um novo registro de status financeiro para um usuário em um mês específico
- Método: POST
- Autenticação: Requerida (JWT Bearer Token)
- Body: Objeto CriarStatusFinanceiroDto
- Resposta: Objeto StatusFinanceiro criado
- Uso: Inicialização de controle financeiro, importação de dados, setup de novos usuários
4. PUT /api/StatusFinanceiro
Atualizar Status Financeiro
- Descrição: Atualiza o status financeiro de um usuário em um mês específico
- Método: PUT
- Autenticação: Requerida (JWT Bearer Token)
- Parâmetros:
usuarioId (query): ID do usuário
mes (query): Mês de referência no formato YYYY-MM
- Body: Objeto AtualizarStatusFinanceiroDto
- Resposta: Objeto StatusFinanceiro atualizado
- Uso: Atualização de pagamentos, correção de status, gestão de inadimplência
🔧 Modelo de Dados
Estrutura do StatusFinanceiro
{
"id": "int",
"usuarioId": "string (GUID - 36 caracteres)",
"mes": "string (formato: YYYY-MM)",
"situacaoFinanceiro": "boolean (true = em dia, false = em atraso)",
"dataCriacao": "datetime",
"dataAtualizacao": "datetime"
}
DTOs de Request/Response
StatusFinanceiroDto (Response)
{
"id": 1,
"usuarioId": "c6b7e826-539b-4901-8453-fedf4e3d1896",
"mes": "2025-01",
"situacaoFinanceiro": true,
"dataCriacao": "2025-01-15T10:30:00Z",
"dataAtualizacao": "2025-01-15T10:30:00Z"
}
CriarStatusFinanceiroDto (Request)
{
"usuarioId": "c6b7e826-539b-4901-8453-fedf4e3d1896",
"mes": "2025-01"
}
AtualizarStatusFinanceiroDto (Request)
{
"situacaoFinanceiro": true
}
🔐 Autenticação e Autorização
Todos os endpoints requerem:
- JWT Bearer Token no header
Authorization
- Permissões específicas baseadas no tipo de usuário:
- Administradores: Acesso completo a todos os endpoints
- Financeiro: Acesso completo para gestão de status
- Responsáveis: Acesso limitado aos seus próprios status
- Usuários: Apenas consulta do próprio status
📊 Casos de Uso Principais
1. Listagem de Todos os Status Financeiros
GET /api/StatusFinanceiro
Authorization: Bearer {token}
Resposta:
[
{
"id": 1,
"usuarioId": "c6b7e826-539b-4901-8453-fedf4e3d1896",
"mes": "2025-01",
"situacaoFinanceiro": true,
"dataCriacao": "2025-01-15T10:30:00Z",
"dataAtualizacao": "2025-01-15T10:30:00Z"
},
{
"id": 2,
"usuarioId": "c6b7e826-539b-4901-8453-fedf4e3d1896",
"mes": "2025-02",
"situacaoFinanceiro": false,
"dataCriacao": "2025-02-01T09:15:00Z",
"dataAtualizacao": "2025-02-01T09:15:00Z"
}
]
2. Consulta de Status Financeiro
GET /api/StatusFinanceiro/consultar?usuarioId=c6b7e826-539b-4901-8453-fedf4e3d1896&mes=2025-01
Authorization: Bearer {token}
Resposta (Status Existe):
{
"id": 1,
"usuarioId": "c6b7e826-539b-4901-8453-fedf4e3d1896",
"mes": "2025-01",
"situacaoFinanceiro": true,
"dataCriacao": "2025-01-15T10:30:00Z",
"dataAtualizacao": "2025-01-15T10:30:00Z"
}
Resposta (Status Não Existe):
{
"usuarioId": "c6b7e826-539b-4901-8453-fedf4e3d1896",
"mes": "2025-01",
"situacaoFinanceiro": false,
"dataCriacao": "2025-01-15T10:30:00Z",
"dataAtualizacao": "2025-01-15T10:30:00Z"
}
3. Criação de Status Financeiro
POST /api/StatusFinanceiro
Content-Type: application/json
Authorization: Bearer {token}
{
"usuarioId": "c6b7e826-539b-4901-8453-fedf4e3d1896",
"mes": "2025-01"
}
4. Atualização de Status
PUT /api/StatusFinanceiro?usuarioId=c6b7e826-539b-4901-8453-fedf4e3d1896&mes=2025-01
Content-Type: application/json
Authorization: Bearer {token}
{
"situacaoFinanceiro": true
}
⚠️ Validações e Regras de Negócio
Validações Obrigatórias
- UsuarioId: Obrigatório, formato GUID válido (36 caracteres)
- Mes: Obrigatório, formato YYYY-MM válido
- SituacaoFinanceiro: Boolean obrigatório (true/false)
Regras de Negócio
- Unicidade: Apenas um registro por usuário/mês
- Normalização: Mês sempre normalizado para o primeiro dia do mês
- Status Padrão: Novos registros criados com
situacaoFinanceiro = false
- Auditoria: Todas as operações são logadas com timestamps
- Formato de Mês: Aceita apenas formato YYYY-MM (ex: “2025-01”)
Validações Específicas
- Formato de Mês: Deve seguir o padrão YYYY-MM
- UsuarioId: Deve ser um GUID válido de 36 caracteres
- Duplicação: Não permite criar registros duplicados para mesmo usuário/mês
- Existência: Atualização requer que o registro já exista
🚨 Tratamento de Erros
Códigos de Status HTTP
- 200: Sucesso na consulta/atualização
- 201: Status financeiro criado com sucesso
- 400: Dados inválidos (formato de mês, GUID inválido)
- 401: Não autorizado (token inválido)
- 403: Acesso negado (sem permissão)
- 404: Registro não encontrado (para atualização)
- 409: Conflito (registro já existe para usuário/mês)
- 500: Erro interno do servidor
Formato de Erro
{
"error": "string",
"message": "string",
"details": "string",
"timestamp": "datetime"
}
Exemplos de Erros
Formato de Mês Inválido:
{
"error": "BadRequest",
"message": "Formato de mês inválido: 2025/01. Use o formato YYYY-MM",
"timestamp": "2025-01-15T10:30:00Z"
}
Registro Duplicado:
{
"error": "Conflict",
"message": "Já existe um registro para este usuário neste mês.",
"timestamp": "2025-01-15T10:30:00Z"
}
📈 Performance e Limitações
Limitações
- Paginação: Consultas retornam máximo 100 registros por página
- Rate Limiting: 1000 requests por hora por usuário
- Timeout: 30 segundos por requisição
- Tamanho de GUID: UsuarioId limitado a 36 caracteres
Otimizações
- Cache: Dados de status são cacheados por 5 minutos
- Índices: Busca otimizada por UsuarioId e Mes
- Compressão: Respostas comprimidas com gzip
- Normalização: Mês sempre normalizado para primeiro dia
🔄 Integração com Outros Módulos
Módulos Relacionados
- Usuários: Associação obrigatória via UsuarioId
- Pagamentos: Controle de situação financeira
- Relatórios: Dados para análises financeiras
- Notificações: Alertas de inadimplência
- Dashboard: Métricas financeiras em tempo real
Fluxos de Integração
- Criação de Usuário → Criação automática de status financeiro
- Processamento de Pagamento → Atualização de status
- Relatórios Financeiros → Consulta de status por período
- Notificações → Alertas baseados em status
📱 Uso em Aplicações
Web App
- Dashboard financeiro com status por usuário
- Relatórios de inadimplência
- Gestão de cobrança
- Análise de tendências financeiras
Mobile App
- Consulta de status pessoal
- Notificações de vencimento
- Histórico financeiro
- Alertas de pagamento
Integrações Externas
- Sistemas de cobrança
- Gateways de pagamento
- ERPs financeiros
- Relatórios contábeis
🛠️ Manutenção e Monitoramento
Logs Importantes
- Criação de novos status financeiros
- Atualizações de situação financeira
- Tentativas de acesso não autorizado
- Erros de validação de formato
- Conflitos de duplicação
Métricas Monitoradas
- Número de usuários em dia/atraso
- Taxa de atualização de status
- Tempo de resposta dos endpoints
- Uso de recursos por endpoint
- Frequência de consultas por usuário
📚 Exemplos Práticos
Fluxo Completo de Gestão Financeira
-
Consulta Inicial:
GET /api/StatusFinanceiro/consultar?usuarioId={id}&mes=2025-01
-
Criação de Status (se não existir):
POST /api/StatusFinanceiro
{
"usuarioId": "{id}",
"mes": "2025-01"
}
-
Atualização de Status (após pagamento):
PUT /api/StatusFinanceiro?usuarioId={id}&mes=2025-01
{
"situacaoFinanceiro": true
}
Fluxo de Relatório Financeiro
- Consulta por Período: Múltiplas consultas por usuário/mês
- Agregação de Dados: Consolidação de status por período
- Geração de Relatório: Análise de inadimplência
- Cache de Resultados: Otimização para próximas consultas
Casos de Uso Específicos
Gestão de Inadimplência
- Consulta de usuários em atraso
- Atualização em lote de status
- Relatórios de cobrança
- Alertas automáticos
Controle de Pagamentos
- Verificação prévia de status
- Atualização após confirmação
- Histórico de alterações
- Auditoria financeira
Versão: 1.0
Última Atualização: Outubro de 2025
Responsável: Equipe de Desenvolvimento CordenaAi